#ifndef IMODEL_H
#define IMODEL_H

#include "../Config/Export.h"
#include "../Core/IResource.h"
#include "../Maths/TVector3.h"

namespace epix {

class SHARED Model : public IResource
{
    public:

        Model(const char *name, unsigned int VBSize, float *pos,
			unsigned int TBSize = 0, float *tex = NULL,
			unsigned int NBSize = 0, float *nor = NULL,
			unsigned int IBSize = 0, unsigned int *indices = NULL);
        virtual ~Model();
        
        void setVertices(float *pos, unsigned int VBSize);
        void setTexCoords(float *tex, unsigned int TBSize);
        void setNormals(float *nor, unsigned NBSize);
        void setIndices(unsigned int *indices, unsigned int IBSize);

		unsigned int getVBSize();
		unsigned int getTBSize();
		unsigned int getNBSize();
		unsigned int getIBSize();
		
        float *getVertices() const;
        float *getTexCoords() const;
        float *getNormals() const;
        unsigned int *getIndices() const;

	private:
		
		Model(const Model &);
		Model &operator=(const Model &);

		unsigned int _VBSize, _TBSize, _NBSize, _IBSize;
        float *_pos, *_tex, *_nor;
        unsigned int *_indices;

};

}

#endif
